/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package LogicaNegocio.Controlador;

import AccesoDatos.Persistencia.Manager.ManagerEmpleado;
import GUI.Bibliotecario.AdminPerfil.PanelEditarPerfil;
import GUI.Bibliotecario.FrameBibliotecario;
import LogicaNegocio.Empleados.Bibliotecario;
import LogicaNegocio.Validacion.VEmpleado;
import MainBiblioSoft.BiblioSoft;
import javax.swing.JOptionPane;

/**
 * Esta clase en java permite editar el perfil del jefe bibliotecario.
 *
 * @author usuario
 * Archivo: ControlEditarPerfilBibliotecario.java
 * @version 1.0
 * Fecha: sáb may 15 19:56:07 COT 2010
 */
public class ControlEditarPerfilBibliotecario {

    //Atributos de clase
    private PanelEditarPerfil panelEditarPerfil;
    private ManagerEmpleado gestorEmpleado;

    public ControlEditarPerfilBibliotecario(PanelEditarPerfil panelEditarPerfil) {
        this.panelEditarPerfil = panelEditarPerfil;
        gestorEmpleado = new ManagerEmpleado();
        actualizar();
    }

    private void actualizar() {
        try {
            Bibliotecario bibliotecario = new Bibliotecario();
            int numeroCedula = Integer.parseInt(panelEditarPerfil.textFieldCedula.getText());
            String passwordNuevo = new String(panelEditarPerfil.passFieldPassword.getPassword());
            String passwordConfirmacion = new String(panelEditarPerfil.passFieldConfirmar.getPassword());
            if (!passwordNuevo.equals(passwordConfirmacion) || passwordNuevo.equals("") || passwordConfirmacion.equals("")) {
                throw new Exception("La confirmacion del password no es correcta, confirme que la confirmacion sea igual al password");
            }
            bibliotecario = gestorEmpleado.obtenerBibliotecario(numeroCedula);
            bibliotecario.setDireccion(panelEditarPerfil.textFieldDireccion.getText());
            bibliotecario.setPassword(passwordNuevo);
            bibliotecario.setPrimerApellido(panelEditarPerfil.textFieldPrimerApellido.getText());
            bibliotecario.setPrimerNombre(panelEditarPerfil.textFieldPrimerNombre.getText());
            bibliotecario.setSegundoApellido(panelEditarPerfil.textFieldSegundoApellido.getText());
            bibliotecario.setSegundoNombre(panelEditarPerfil.textFieldSegundoNombre.getText());
            bibliotecario.setTelefono(panelEditarPerfil.textFieldTelefono.getText());
            bibliotecario.setUniversidad(panelEditarPerfil.textFieldUniversidad.getText());
            new VEmpleado(bibliotecario);
            gestorEmpleado.actualizarEmpleado(numeroCedula, bibliotecario);
            BiblioSoft.bibliotecario = bibliotecario;
            String primerNombre = BiblioSoft.bibliotecario.getPrimerNombre();
            String primerApellido = BiblioSoft.bibliotecario.getPrimerApellido();
            String segundoNombre = BiblioSoft.bibliotecario.getSegundoNombre();
            String segundoApellido = BiblioSoft.bibliotecario.getSegundoApellido();
            FrameBibliotecario.labelInfoBibliotecario.setText("Bibliotecario: "+primerNombre+" "+segundoNombre+" "+primerApellido+" "+segundoApellido);
            JOptionPane.showMessageDialog(panelEditarPerfil, "El Perfil ha sido actualizado con exito", "Actualizar Perfil", JOptionPane.PLAIN_MESSAGE);
        } catch (VEmpleado ex) {
            JOptionPane.showMessageDialog(panelEditarPerfil, ex.getMessage(), "Error Datos", JOptionPane.PLAIN_MESSAGE);
        } catch (Exception ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(panelEditarPerfil, ex.getMessage(), "Error Actualizacion", JOptionPane.INFORMATION_MESSAGE);
        }
    }
}
